import request from '@/utils/request'

/**
 * 举报相关接口
 */

// 获取举报列表
// @return {Promise} 返回举报列表数据
export const getReportList = () => {
  return request({
    url: '/reports',
    method: 'get'
  })
}

// 提交举报
// @param {Object} data - 举报信息
// @param {number} data.postId - 被举报的帖子ID
// @param {number} data.reportedUserId - 被举报的用户ID
// @param {string} data.reportType - 举报类型
// @param {string} data.reportReason - 举报原因
// @return {Promise} 返回新创建的举报ID
export const submitReport = (data) => {
  return request({
    url: '/reports',
    method: 'post',
    data
  })
}

// 获取举报详情
// @param {number} id - 举报ID
// @return {Promise} 返回举报详细信息
export const getReportDetail = (id) => {
  return request({
    url: `/reports/${id}`,
    method: 'get'
  })
}

// 删除举报
// @param {number} id - 举报ID
// @return {Promise} 返回删除结果
export const deleteReport = (id) => {
  return request({
    url: `/reports/${id}`,
    method: 'delete'
  })
}

// 处理举报
// @param {number} id - 举报ID
// @param {Object} data - 处理信息
// @param {string} data.handleResult - 处理结果
// @param {string} data.handleComment - 处理备注
// @return {Promise} 返回处理结果
export const handleReport = (id, data) => {
  return request({
    url: `/reports/${id}/handle`,
    method: 'put',
    data
  })
}

// 驳回举报
// @param {number} id - 举报ID
// @param {Object} data - 驳回信息
// @param {string} data.handleComment - 驳回原因
// @return {Promise} 返回驳回结果
export const rejectReport = (id, data) => {
  return request({
    url: `/reports/${id}/reject`,
    method: 'put',
    data
  })
} 